/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package app.modelo;

import javax.swing.table.AbstractTableModel;

/**
 *
 * @author Lain
 */
public class ModeloJTabla extends AbstractTableModel {
    
    private Tabla tabla;

    public ModeloJTabla(Tabla tabla) {
        this.tabla = tabla;
    }
    
    @Override
    public int getRowCount(){
        return tabla.calcularTotalFilas();
    }
        
    @Override
    public int getColumnCount(){
        return tabla.calcularTotalColumnas();
    }
    
    @Override
    public Object getValueAt(int fila, int columna){
        return tabla.obtenerValor(fila, columna);
    }
    
    @Override
    public void setValueAt(Object valorCampo, int fila, int columna) {
        tabla.actualizarValor(valorCampo, fila, columna);
        fireTableCellUpdated(fila, columna);        
    }
   
    @Override
    public boolean isCellEditable(int fila, int columna) {
        return false;
    }
    
    @Override
    public String getColumnName(int columna) {
        return tabla.obtenerNombreColumna(columna);
    }
    
    @Override
    public Class getColumnClass(int columna) {
        Class clase = null;
        String nombreClase = tabla.obtenerClaseColumna(columna);
        if(nombreClase != null){
            try {
                clase = Class.forName(nombreClase);
            } catch (ClassNotFoundException ex) {
                
            }
        }
        return clase;
    } 
    
    public void limpiarTabla(){
        tabla.limpiarTabla();
        fireTableDataChanged(); 
    }
    
    public void agregarFila(Fila oFila){
        tabla.agregarFila(oFila);
        fireTableDataChanged();          
    }
    
    public void quitarFila(int fila){
        tabla.quitarFila(fila);
        fireTableDataChanged();          
    }
}
